Streaming media is multimedia that is constantly received by, and normally presented to, an end-user (using a client) while it is being delivered by a streaming provider (using a server). Streaming can be accomplished using stateless communication between the client and server by breaking media up into chunks that are individually addressable and can be individually requested by clients. For a particular media event or content item, the streaming server provides a manifest file that describes each of the chunks that comprise the event. For example, a one-minute video may include 60 one-second audiovisual chunks. Each chunk contains metadata and media content.
The metadata may describe useful information about the media content, such as the hit rate of the media content, where the media content fits into a larger media element, a codec used to encode the media content, and so forth. The client uses this information to place the chunk into a storyboard of the larger media element and to properly decode and playback the media content. The chunks can be in any format, such as Motion Picture Experts Group (MPEG) 4 boxes or other containers. A client plays a media event to a user by reading the manifest and regularly requesting chunks from the server. The user may also skip around (e.g., seek, fast forward, rewind) and the client can provide these behaviors by requesting later or earlier chunks described by the manifest. For live events, the server may provide the manifest to the client piecemeal, so that the server informs the client of newly available chunks as they become available.
While these streaming techniques provide a great experience for viewing streaming media over the Internet and other networks, users often want to view (and producers of content often want to provide) content that comes from different sources or from different existing content items, including advertisements and highlight videos. For example, a sports network may want to provide a highlight video at the end of each day that includes some new commentary and some selections from earlier media events. Today the sports network can provide links to each video, but users may not want to view dozens of different video streams or files. Producers of content do not want to re-encode or repackage each earlier content item for rerelease as a new content item for these types of purposes. By repackaging the content the publisher can provide the user with familiar smooth streaming controls, such as skipping forward and backward in a stream. In many cases, the producer may want to provide quick turnaround to create highlights using a combination of on-demand and live assets immediately after an event or even as an event is still on-going (e.g., for late joining viewers of the event).